<script type="text/javascript">
	a = 100;
	function demo(e){
		function e(){}
		arguments[0] = 2;
		document.write(e);//2
		if(a){
			var b =123;
			function c(){}
		}
		var c;
		a = 10;
		var a;
		document.write(b);//und
		f = 123;
		document.write(c);//und
		document.write(a);//10
	}
	var a;
	demo(1);
	document.write(a);//100
	document.write(f);//123

</script>


计算一个字符串的字节长度

<script type="text/javascript">
	function byteLen(target){
		var count = 0;
		var leng = target.length;
		for(var i = 0; i < leng; i ++){
			if(target.charCodeAt(i) > 255){
				count += 2;
			}else{
				count ++
			}
		}
		console.log(count)
	}
	byteLen('n很帅')
</script>

<script type="text/javascript">
	//最终高效代码，最终程序执行快
	function bylen(target){
		var count,
			leng;
		count = leng = target.length;//一次性赋值，节省多次赋值带来的计算次数；一个空间直接拿值和计算完之后拿值是不一样的
		for(var i = 0; i < leng; i ++){
			if(target.charCodeAt(i) > 255){
				count ++;
			}
		}
		console.log(count)
	}
	bylen('n很帅')
</script>

<script type="text/javascript">
	var f = (
		function f (){
			return '1'
		},
		function g (){
			return 2
		}())
	console.log(typeof f)
</script>

<script type="text/javascript">
	var x = 1;
	if(function f(){}){//function不是false的六个值，可以执行；function是括号里的条件，加上括号后变成表达式，就不是函数的定义了function从此后就消失了；未经什么就赋值会报错，但是typeof是唯一一个不会报错的操作符，未经声明的变量放到typeof里不会报错，返回字符串类型'undefined',
		x += typeof f;//1undefined
	}
	console.log(f);
</script>